#ifndef _FONTFAMILY_H_
#define _FONTFAMILY_H_

#include "FSettings.h"

namespace Font
{

	class Face;
	class FaceHandle;
	class Library;
	class KerningTable;
	class Metrics;
	class CharMap;
	class Loader;

	class Family
	{
	
	public:
	
		Family(Library* a_Library, const tb::String& a_Name);
		~Family();

		Face* CreateFace(Loader* a_Loader, Metrics* a_Metrics);

		FaceHandle* CreateFontHandle(unsigned int a_Size, unsigned int a_Properties, CharMap* a_Map = NULL);

		void AddMetrics(Loader* a_Loader, Metrics* a_Metrics);

		const tb::String& GetName();

		FaceHandle* GetFaceHandle(unsigned int a_Size, unsigned int a_Style, CharMap* a_Map = NULL);

		Library* GetLibrary();

	protected:

		tb::String m_Name;

		std::vector<Face*> m_Faces;
		std::vector<Metrics*> m_Metrics;

		Library* m_Library;
	
	}; // class FontFamily

}; // namespace Rpt
	
#endif